-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[iOS] Implement iOS PAL for S.S.C.X509Certificates #52191
Conversation
Tagging subscribers to this area: @bartonjs, @vcsjones, @krwq, @GrabYourPitchforks Issue DetailsBuilds on top of #52043. The managed part is split from the macOS PAL implementation because it's substantially different. The chain building part is kept shared but certificate and store management is implemented from scratch with some code reuse. iOS keychain supports only one store that is exposed as the names Missing features:
Marked as draft for the moment to solicit early review. Fixes #49289.
|
69cac02
to
0c862ba
Compare
src/libraries/System.Security.Cryptography.X509Certificates/tests/TestFiles.cs
Outdated
Show resolved
Hide resolved
3a66b0a
to
146ce5d
Compare
Rebased after #52043 was merged. |
...urity.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.iOS/AppleCertificatePal.cs
Outdated
Show resolved
Hide resolved
...urity.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.iOS/AppleCertificatePal.cs
Outdated
Show resolved
Hide resolved
@bartonjs can you give this another pass? |
It's on my todo list, currently around third, which probably means tomorrow afternoon. |
src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt
Outdated
Show resolved
Hide resolved
...y.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.iOS/AppleCertificatePal.Pem.cs
Outdated
Show resolved
Hide resolved
...y.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.iOS/AppleCertificatePal.Pem.cs
Outdated
Show resolved
Hide resolved
...curity.Cryptography.X509Certificates/tests/CertificateCreation/PrivateKeyAssociationTests.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Security.Cryptography.X509Certificates/tests/CollectionImportTests.cs
Outdated
Show resolved
Hide resolved
...curity.Cryptography.X509Certificates/tests/CertificateCreation/PrivateKeyAssociationTests.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My only "real" concern before merging is the PEM header and content mismatch scenario (oh, and clearing the rented PEM buffer). Removing the highly repetitive triplet of platforms for the skip attributes is just bonus.
|
@bartonjs Can you take another look please? I believe I have addressed all the issues you found in your last review. |
@filipnavara thanks for the contribution! |
Happy to help and to cross it off the list. 😅 |
The managed part is split from the macOS PAL implementation because it's substantially different. The chain building part is kept shared but certificate and store management is implemented from scratch with some code reuse. iOS keychain supports only one store that is exposed as the
My
store.Missing features:
It passes all the inner and outer loop tests except the ones that are explicitly disabled in the PR and the ones failing because of test runner issue (#52104; fix submitted in #52372).
Fixes #36897.
Fixes #49289.
Fixes #51388.
Contributes to #47910.
Contributes to #47533